import os

from celery.schedules import crontab
from datetime import timedelta
import aiomysql

# 使用redis存储任务队列
broker_url = 'redis://:foobared@127.0.0.1:6379/1'
# 使用redis存储结果
result_backend = 'redis://:foobared@127.0.0.1:6379/2'

# mysql
pool: aiomysql.Pool
MYSQL_HOST = "81.71.137.167"
MYSQL_PORT = 3306
MYSQL_USER = 'root'
MYSQL_DB = 'mall_demo02'
MYSQL_PASSWD = 'LgDk%zMG0x!lfc@C'
MYSQL_CONNECTION_MAXSIZE = 2
MYSQL_POOL_RECYCLE = 60


BASE_DIRS = os.path.dirname(os.path.abspath(__file__))
LOGGING_FORMAT = '[%(levelname)s] [%(asctime)s %(filename)s %(lineno)d] %(message)s'
LOGGING_LEVEL = 'DEBUG'
log_file = 'mycelery.log'
logger = None

task_serializer = 'json'
result_serializer = 'json'
accept_content = ['json']
# 时区设置
timezone = 'Asia/Shanghai'
# celery默认开启自己的日志
# False表示不关闭
worker_hijack_root_logger = False
# 存储结果过期时间，过期后自动删除
# 单位为秒
result_expires = 60 * 60 * 24

# 导入任务所在文件,
imports = [
    'mycelery.order.tasks'
]

# 需要执行任务的配置
beat_schedule = {
    'test1': {
        # 具体需要执行的函数
        # 该函数必须要使用@app.task装饰
        'task': 'mycelery.order.tasks.send_sms',
        # 定时时间
        # 每分钟执行一次，不能为小数
        # 'schedule': crontab(minute='*/1'),
        'schedule': timedelta(seconds=5),
        # 或者这么写，每小时执行一次
        # "schedule": crontab(minute=0, hour="*/1")
        # 执行的函数需要的参数
        'args': ()
    },
    'test2': {
        'task': 'mycelery.order.tasks.send_sms2',
        # 设置定时的时间，10秒一次
        'schedule': timedelta(seconds=100),
        'args': (4567, )
    }
}